1
Lección 7: Aprendizaje por Transferencia – Aprovechando el Conocimiento
EvoClass-AI002Conferencia 7
00:00

Bienvenido a la Lección 7, donde presentamos Aprendizaje por Transferencia. Esta técnica consiste en reutilizar un modelo de aprendizaje profundo que ya ha sido entrenado con un conjunto de datos masivo y general (como ImageNet) y adaptarlo para resolver una nueva tarea específica (como nuestro desafío FoodVision). Es esencial para alcanzar resultados de vanguardia de manera eficiente, especialmente cuando los conjuntos de datos etiquetados son limitados.

1. El Poder de los Pesos Preentrenados

Las redes neuronales profundas aprenden características de forma jerárquica. Las capas inferiores aprenden conceptos fundamentales (bordes, esquinas, texturas), mientras que las capas más profundas combinan estas características en conceptos complejos (ojos, ruedas, objetos específicos). La clave está en que las características fundamentales aprendidas al principio son universalmente aplicables en la mayoría de los dominios visuales.

Componentes del Aprendizaje por Transferencia

  • Tarea de Origen: Entrenamiento con 14 millones de imágenes y 1000 categorías (por ejemplo, ImageNet).
  • Tarea Objetivo: Adaptar los pesos para clasificar un conjunto de datos mucho más pequeño (por ejemplo, nuestras clases específicas de FoodVision).
  • Componente Aprovechado: La gran mayoría de los parámetros de la red—las capas de extracción de características—se reutilizan directamente.
Ahorro de Recursos
El aprendizaje por transferencia reduce drásticamente dos barreras importantes de recursos: Costo Computacional (evitas entrenar todo el modelo durante días) y Requisito de Datos (la alta precisión se puede lograr con cientos, en lugar de miles, de ejemplos de entrenamiento).
train.py
TERMINALbash — entorno-pytorch
> Listo. Haz clic en "Ejecutar" para ejecutar.
>
INSPECTOR DE TENSORESEn Vivo

Ejecuta el código para inspeccionar tensores activos
Pregunta 1
¿Cuál es la ventaja principal de usar un modelo preentrenado en ImageNet para una nueva tarea de visión?
Requiere menos datos etiquetados que entrenar desde cero.
Elimina completamente la necesidad de cualquier conjunto de datos de entrenamiento.
Garantiza un 100 % de precisión inmediatamente.
Pregunta 2
En un flujo de trabajo de aprendizaje por transferencia, ¿qué parte de la red neuronal suele estar congelada?
La última capa de salida (cabeza clasificadora).
La base convolucional (capas de extracción de características).
La red completa suele no estar congelada.
Pregunta 3
Al reemplazar la cabeza clasificadora en PyTorch, ¿qué parámetro debes determinar primero a partir de la base congelada?
El tamaño de lote de los datos objetivo.
El tamaño de entrada de características (las dimensiones de salida de la última capa convolucional).
El número total de parámetros del modelo.
Desafío: Adaptación de la Cabeza Clasificadora
Diseñar una nueva clasificadora para FoodVision.
Cargas un modelo ResNet preentrenado en ImageNet. Su última capa de características produce un vector de tamaño 512. Tu proyecto 'FoodVision' tiene 7 clases distintas de alimentos.
Paso 1
¿Cuál es el tamaño requerido de características de entrada para la nueva capa lineal entrenable?
Solución:
El tamaño de características de entrada debe coincidir con la salida de la capa base congelada.
Tamaño: 512.
Paso 2
¿Cuál es el fragmento de código de PyTorch para crear esta nueva capa clasificadora (suponiendo que la salida se llama `new_layer`)?
Solución:
El tamaño de salida de 512 es la entrada, y el recuento de clases 7 es la salida.
Código: new_layer = torch.nn.Linear(512, 7)
Paso 3
¿Cuál es el tamaño requerido de características de salida para la nueva capa lineal?
Solución:
El tamaño de características de salida debe coincidir con el número de clases objetivo.
Tamaño: 7.